//
//  LVBaseCollectionViewModel.h
//  BaseCode
//
//  Created by 曹连华 on 2019/6/20.
//  Copyright © 2019 曹连华. All rights reserved.
//

#import "LVBaseViewModel.h"
#import "LVCollectionViewDataSource.h"

NS_ASSUME_NONNULL_BEGIN

@interface LVBaseCollectionViewModel : LVBaseViewModel

@property (nonatomic, strong, readonly) LVCollectionViewDataSource *dataSource;

///在ViewModel 中调用此函数 进行reloadCollectionBlock 的调用执行 在 reloadTableViewBlock 中调用 [collectionView reloadData
- (void)reloadCollectionView;

///在ViewModel 中调用此函数 进行reloadCollectionBlock 的调用执行 在 reloadTableViewBlock 中调用 [collectionView reloadData]
- (void)reloadCollectionViewWithIndexPaths:(NSArray <NSIndexPath *> *)indexPaths;

///在ViewModel 中调用此函数 进行reloadCollectionBlock 的调用执行 在 reloadTableViewBlock 中调用 [collectionView reloadData]
- (void)reloadCollectionViewWithSections:(NSIndexSet *)sections;

/**
 *  在ViewController 实现 reloadCollectionBlock  进行刷新CollectionView的操作
 */
@property (nonatomic, copy) LVReloadActionBlock reloadCollectionBlock;

- (LVBaseCellRowModel *)didSelectedRowModelWithIndexPath:(NSIndexPath *)indexPath;

- (LVBaseCellRowModel *)didSelectedRowModelWithIndexPath:(NSIndexPath *)indexPath
                                         LVCompletionBlock:(nullable LVCompletionBlock)completionBlock;
@end

NS_ASSUME_NONNULL_END
